package cxydmmszl.chapter09.t148.simple;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * <li style="color: red;">Prob</li>
 * 有关阶乘的两个问题 1
 * <li style="color: green;">Desc</li>
 * 给定一个非负整数 N，返回 N! 结果末尾为 0 的数量。
 * <br/><br/>备注：<br/>
 * 1⩽N⩽10^18
 * <li style="color: green;">Input</li>
 * 第一行一个整数 N。
 * <li style="color: green;">Output</li>
 * 输出一个整数表示 N! 的末尾 0 的数量。
 * <li style="color: blue;">Link</li> CD56
 *
 * @author habitplus
 * @since 2021-10-16 14:36
 */
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        long n = Long.parseLong(br.readLine());

        long ans = tailZeroNum2(n);
        System.out.println(ans);
    }

    /*
        暴力计算整个阶乘中含有因子 5 的数量，就是【末尾零的数量】
        对于输入：200000000000000000 ==> 超时
     */
    private static long tailZeroNum1(long n) {
        if (n < 5 ) return 0;

        long res = 0;
        long cur;
        for (long i = 5; i <= n; i++) {
            cur = i;
            while (cur % 5 == 0) {
                res++;
                cur /= 5;
            }
        }

        return res;
    }

    /*
        分组统计 5 的数量， 每 5,25,125,..., 个数
        对于输入：200000000000000000 ==> 超时
     */
    private static long tailZeroNum2(long n) {
        if (n < 5 ) return 0;

        long res = 0;
        while (n != 0) {
            res += n / 5;
            n /= 5;
        }
        return res;
    }
}
